Model anti-collusion watermark

ABSTRACT

Embedding a watermark payload in content, including: a counter configured to store a random seed; a permutation generator configured to receive and process the watermark payload and the random seed, and generate a shuffled payload based on the random seed; and a watermark embedder configured to receive and embed the shuffled payload into the content. Key words include watermark payload and collusion.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of priority under 35 U.S.C. §119(e)of U.S. Provisional Patent Application No. 62/107,230, filed Jan. 23,2015, entitled “Model Anti-Collusion Watermark.” The disclosure of theabove-referenced application is incorporated herein by reference.

BACKGROUND

Field of the Invention

The present disclosure relates to digital watermarking, and morespecifically, to anti-collusion watermarking.

Background

The purpose of forensics marking is to facilitate the identification ofleaking audio-visual sources. As such, the forensic marking maycomplement other investigation tools. The aim is to discover thecompromised device or the set of compromised devices, or the infringingviewer.

One known attack is called collusion. Two or more, colluding principalsmix in some way their individually watermarked pieces of content withthe hope that the attack either erases the embedded information orpoints to another principal.

One commonly proposed solution is to use payloads supportinganti-collusion. They are often referred to as Tardos codes and manyresearchers followed the principles of Tardos codes. Tardos codes allowdetection with high probability of the collusion of two or morecolluders.

The main problem with Tardos codes is that they require a payload lengthof several hundreds or thousands of bits. Long payloads may be onlypractical with usual digital watermarking strategies using the fulllength of the piece of content to embed many successive occurrences ofthe payload. Unfortunately, it may not be true for sequence key-likewatermarking strategies, which typically do not support long payloads.

SUMMARY

The present disclosure provides for anti-collusion and traitor tracingby shuffling watermark payload in content.

In one implementation, a system for embedding a watermark payload incontent is disclosed. The system includes: a counter configured to storea random seed; a permutation generator configured to receive and processthe watermark payload and the random seed, and generate a shuffledpayload based on the random seed; and a watermark embedder configured toreceive and embed the shuffled payload into the content.

In another implementation, method to embed a watermark payload incontent is disclosed. The method includes: generating a random seedusing a counter; shuffling the watermark payload to generate a shuffledpayload based on the random seed; and embedding the shuffled payloadinto the content.

In another implementation, a method to detect a group of traitorscolluding to obtain content is disclosed. The method includes:extracting a watermark payload from the content; unshuffling thewatermark payload using a reverse permutation generator and an expectedoutput of a counter to generate an unshuffled payload; and applying amajority decision on a set of unshuffled watermark payloads to detectthe group of traitors.

In yet another implementation, an apparatus is disclosed. The apparatusincludes: a processor; and memory connected to the processor, the memorystoring a computer program to embed a watermark payload in content, thecomputer program comprising instructions executable by the processorthat cause the apparatus to: generate a random seed using a counter;shuffle the watermark payload to generate a shuffled payload based onthe random seed; and embed the shuffled payload into the content.

In a further implementation, an apparatus is disclosed. The apparatusincludes: a processor; and memory connected to the processor, the memorystoring a computer program to detect a group of traitors colluding toobtain content, the computer program comprising instructions executableby the processor that cause the apparatus to: extract a watermarkpayload from the content; unshuffle the watermark payload using areverse permutation generator and an expected output of a counter togenerate an unshuffled payload; and apply a majority decision on a setof unshuffled watermark payloads to detect the group of traitors.

Other features and advantages of the present disclosure should beapparent from the present description which illustrates, by way ofexample, aspects of the disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

The details of the present disclosure, both as to its structure andoperation, may be gleaned in part by study of the appended furtherdrawings, in which like reference numerals refer to like parts, and inwhich:

FIG. 1A is an exemplary watermark payload for each principal inaccordance with one implementation of the present disclosure;

FIG. 1B shows an exemplary anti-collusion method to identify the groupof colluding principals in accordance with one implementation of thepresent disclosure;

FIG. 2A is a functional block diagram of a watermark embedding system inaccordance with one implementation of the present disclosure;

FIG. 2B is a flow diagram illustrating a process for watermark embeddingin accordance with one implementation of the present disclosure;

FIG. 3 shows an exemplary layout of a payload in a table format inaccordance with one implementation of the present disclosure; and

FIG. 4 is a flow diagram illustrating a process for traitor detection inaccordance with one implementation of the present disclosure.

DETAILED DESCRIPTION

As stated above, forensics marking facilitates the identification of acompromised device or set of compromised devices. However, principalscan collude to either erase the embedded/watermarked information ofcontent or point to another principal. Anti-collusion schemes such asTardos codes allow detection of two or more colluders. As noted above,the main problem with Tardos codes is that they require a payload lengthof several hundreds or thousands of bits, which may not be suitable forsequence key-like watermarking strategies.

Certain implementations as disclosed herein teach techniques for ananti-collusion/traitor tracing system using a robust anti-collusionmethod. In one implementation, a group of potentially colludingprincipals is identified by the common model number in the payload ofthe content. In a further implementation, the positions of individualbits of the payload are permutated. After reading this description itwill become apparent how to implement the disclosure in variousimplementations and applications. However, although variousimplementations of the present disclosure will be described herein, itis understood that these implementations are presented by way of exampleonly, and not limitation. As such, this detailed description of variousimplementations should not be construed to limit the scope or breadth ofthe present disclosure.

The detailed description set forth below is intended as a description ofexemplary designs of the present disclosure and is not intended torepresent the only designs in which the present disclosure can bepracticed. The term “exemplary” is used herein to mean “serving as anexample, instance, or illustration.” Any design described herein as“exemplary” is not necessarily to be construed as preferred oradvantageous over other designs. The detailed description includesspecific details for the purpose of providing a thorough understandingof the exemplary designs of the present disclosure. It will be apparentto those skilled in the art that the exemplary designs described hereinmay be practiced without these specific details. In some instances,well-known structures and devices are shown in block diagram form inorder to avoid obscuring the novelty of the exemplary designs presentedherein.

In one implementation of the anti-collusion system, rather thanidentifying the individual colluding principal, the system attempts toidentify a group of potentially colluding principals. Each principal isclassified within a group of principals that is more likely to colludetogether, for instance, using the same model of device to capturecontent. In some implementations, the anti-collusion system may includetwo parts, a watermark embedding system and a traitor detection system.

In one implementation, playback devices perform the embedding of thepayload. Thus, the objective of the anti-collusion system is to identifythe manufacturer and model of device that a collusion attack used. Thelikelihood that colluders will use the same model is high.

FIG. 1A is an exemplary watermark payload 100 for each principal inaccordance with one implementation of the present disclosure. Thepayload 100 includes two fields, which are the model number 110 (whichmay identify both the manufacturer and the model of the device) and theindividual device identifier (individual ID) 120. In the illustratedexemplary watermark payload 100 of FIG. 1A, the model number 110 is anumber of the model of the devices belonging to the principals. That is,the model number 110 uniquely identifies the group of principals. Thisassumes that all members of this group share the same model number 110.Thus, the individual ID 120 uniquely identifies the principal within itsgroup.

When extracting the watermark payloads from a potentially marked pieceof content, there are two potential scenarios. One scenario is a case(Case 1) in which the attacker did not collude. In Case 1, the extractedpayload 100 is genuine and identifies the leaking principal using themodel number 110 and the individual ID 120. Another scenario is a case(Case 2) in which the attackers of the same group colluded. Thus, theattackers may access several differently watermarked instances of thesame piece of content. In Case 2, the attackers can mount a collusionattack. However, the resultant payload of the collusion attack has aninvariant in the model number, therefore, identifying the leaking model.

FIG. 1B shows an exemplary anti-collusion method to identify the groupof colluding principals in accordance with one implementation of thepresent disclosure. In the illustrated implementation of FIG. 1B,payload 130 shows one example of Case 1 in which the attacker did notcollude. Thus, using payload 130, the principal with individual ID‘999998’ and model ID ‘123456’ is identified as an attacker.

The illustrated implementation of FIG. 1B also includes examples of Case2 involving payloads 140, 160, 180, 190. For example, payload 140 can berepresented as a payload of principal A, while payload 160 can berepresented as a payload of principal B. Payload 140 includes the modelnumber 146 (‘123456’) and the individual ID 156 (‘999998’). Payload 160includes the model number 166 (‘123456’) and the individual ID 176(‘777776’). Since the two payloads 140, 160 have the same model number146, 166, the two principals, Principals A and B, are considered to bein a same group of principals (e.g., Group X). Further, Group X mayinclude principals other than Principals A and B (e.g., Principals C, D,E, and so on).

In the exemplary implementation of FIG. 1B, it is assumed thatPrincipals A and B have colluded by breaking up the contents owned byPrincipals A and B including the payloads 140, 160 and piecing togetherdifferent parts of the contents. For example, in FIG. 1B, payload 140 isbroken up into four pieces 142, 144, 152, 154. That is, the model number146 is broken into pieces 142, 144, while the individual ID 156 isbroken into pieces 152, 154. The same process is used to break uppayload 160 into four pieces 162, 164, 172, 174. That is, the modelnumber 166 is broken into pieces 162, 164, while the individual ID 176is broken into pieces 172, 174.

Principals A and B then selectively combines four pieces 142, 144, 152,154 of payload 140 with four pieces 162, 164, 172, 174 of payload 160 toproduce a different payload (e.g., payload 180 or 190). Since thepayloads are embedded in the content, the selection must include fourpieces sequentially selected from the eight pieces in payloads 140, 160.That is, four selections are made, wherein one selection is made fromeach of 142/162, 144/164, 152/172, 154/174.

In one example shown in payload 180, following selections are made 142,164, 152, 174 to produce model number 182 of ‘123456’ and individual ID184 of ‘999776’. Thus, model number 182 of ‘123456’ is a combination ofpiece 142 of ‘123’ and piece 164 of ‘456’, while individual ID 184 of‘999776’ is a combination of piece 152 of ‘999’ and piece 174 of ‘776’.Therefore, in this example, although individual ID 184 of ‘999776’ doesnot provide accurate information about the colluding principals (i.e.,Principals A and B with IDs of ‘999998’ and ‘777776’), model number 182of ‘123456’ provides accurate information about the model number of thecolluding principals.

In another example shown in payload 190, following selections are made162, 144, 172, 154 to produce model number 192 of ‘123456’ andindividual ID 194 of ‘777998’. Thus, model number 192 of ‘123456’ is acombination of piece 162 of ‘123’ and piece 144 of ‘456’, whileindividual ID 194 of ‘777998’ is a combination of piece 172 of ‘777’ andpiece 154 of ‘998’. Again, in this example, although individual ID 194of ‘777998’ does not provide accurate information about the colludingprincipals (i.e., Principals A and B with IDs of ‘999998’ and ‘777776’),model number 192 of ‘123456’ provides accurate information about themodel number of the colluding principals.

As can be seen from the above two examples, since the payload has aninvariant value in the model number, it may become an easy target forthe colluding principals. Thus, in a further implementation, theposition of individual bits of the payload for each repetition of thepayload within the watermarked content is permutated.

FIG. 2A is a functional block diagram of a watermark embedding system200 in accordance with one implementation of the present disclosure. Inthe illustrated implementation of FIG. 2A, the watermark embeddingsystem 200 includes a counter 240, a pseudo-random permutation generator230, and a watermark embedder 242. The pseudo-random permutationgenerator 230 may differ from a true random permutation generator inthat the technique of the pseudo-random permutation generator 230 isdesigned to be sufficiently complicated so that its output appears to berandom to someone who does not know the technique, and can pass variousstatistical tests of randomness. Thus, the output of the pseudo-randompermutation generator 230 may not be random, but deterministic. In otherimplementation, the permutation generator 230 may use some otherdeterministic method to generate a shuffled value. The counter 240 holdsthe current random seed such that the pseudo-random permutationgenerator 230 receives the output of the counter 240, calculates thepseudo-random permutation, and the counter 240 is appropriately updatedby the system 200.

In FIG. 2A, the payload 220 (e.g., equivalent to payload 100, 130, 140,or 160) and the output of the counter 240 are fed into the pseudo-randompermutation generator 230. The output of the pseudo-random permutationgenerator 230 is a shuffled payload 232. All the bits of payload 220 arepresent in the shuffled payload 232 but in a random order. The watermarkembedder 242 receives the content 210 and embeds one full shuffledpayload 232. The outcome is the watermarked content 244. After eachcomplete payload embedding, the watermark embedder 242 (e.g., aninterface unit in the watermark embedder 242) requests the counter 240to increment its value. This increment in the counter 240 generates anew value of the shuffled payload 232. The initial value (or randomseed) of the counter 240 may depend on the content 210. In one exemplaryimplementation, the watermark embedder 242 includes a content evaluator(not shown) that evaluates certain predetermined properties (e.g.,resolution, metadata, type, etc.) of the content to generate the initialvalue of the counter 240. In another implementation, the initial valueis carried within the metadata of the piece of content or determined bysome parameters of the piece of content itself. For example, it may bethe result of the hash of the n first video segments.

As mentioned above, once the shuffled payload 232 is embedded into thecontent 210 using the watermark embedder 242, the watermarked content242 is presented to the principal using a playback device. In oneimplementation, the playback device is the same device as the devicethat performed the embedding of the watermarked content 242. In anotherimplementation, the playback device is a connected remote device that isdifferent from the device that performed the embedding of thewatermarked content 242.

In another implementation, the output of the watermark embedding system200 (i.e., the watermarked content 244) is received by a traitordetection system to detect the model number of the device used by agroup of colluding principals. For example, for each shuffled payload232 successfully extracted by the traitor detection system, the expectedpayload 220 is retrieved using the reverse pseudo-random permutationgenerator.

The pseudo-random permutation generator 230 may use a technique such asused with the Yates-Fisher technique with a possible variant. Thepseudo-random permutation generator 230 uses a seed that is defined by acombination counter 240 and the order in the sequence, for example, aSecure Hash Algorithm 1 (SHA-1) (counter+i) modulo i. The watermarkembedder 242 is a typical sequence key-like embedder that selects the‘0’ or ‘1’ watermarked video segment depending on the correspondingvalue of the shuffled payload 232.

FIG. 2B is a flow diagram illustrating a process for watermark embedding250 in accordance with one implementation of the present disclosure. Inthe illustrated implementation of FIG. 2B, the initial value of theoutput of the counter is calculated, at block 252. The payload 220(e.g., equivalent to payload 100, 130, 140, or 160) is then shuffledusing the output of the counter, at block 260, to produce a shuffledpayload. All the bits of the payload 220 are present in the shuffledpayload but in a random order. One shuffled payload is embedded into thecontent, at block 270. After each complete payload embedding, thewatermark embedding process 250 requests the counter to increment itsvalue, at block 280. This increment in the counter generates a new valueof the shuffled payload 232. If the end of the content is reached, atblock 290, the process 250 is terminated. Otherwise, the process 250reverts back to block 260 to shuffle more payloads.

FIG. 3 shows an exemplary layout of a payload 300 in a table format inaccordance with one implementation of the present disclosure. In theexemplary implementation of FIG. 3, the payload 300 includes 64 bits.The first w bits (e.g., 16 bits) include a model number 310, whichuniquely identifies a manufacturer and one of its technical model. Thenext x bits (e.g., 24 bits) include an individual ID 320, which uniquelyidentifies a device within a given model. The next y bits (e.g., 20bits) include a ‘Rand_pad’ identifier 330, which specifies a randomnumber unique to the title. The value is not secret and is generatedduring authoring. The next z bits (e.g., 4 bits) include an ErrorCorrecting Code (ECC) 340, which is used to correct any errors occurringin extracting of the payload of the three previous fields 310, 320, 330.The ECC 340 is calculated during the generation of the segment keys.

FIG. 4 is a flow diagram illustrating a process for traitor detection400 in accordance with one implementation of the present disclosure. Thetraitor detection process 400 includes extracting the successiveshuffled payload 232, at block 410. As mentioned above with thedescription of FIG. 2B, successive shuffled payloads are embedded into apiece of content several times, wherein the shuffled payload isdifferent each time as the counter is incremented. For each successfullyextracted shuffled payload 232, the expected payload 220 is retrieved,at block 420, using the reverse pseudo-random permutation generator. Theretrieval of the expected payload 220 “unshuffles” the shuffled payload232. The expected payload retrieval step 420 also uses the expectedvalue of the counter.

A determination is made, at block 430, whether the error correction ispossible or needed. If it is determined, at block 430, that the errorcorrection is possible or needed, the error correction is applied, atblock 440, using the error correction code (ECC) (e.g., ECC 330 in FIG.3). A majority decision is then applied, at block 450, using thecorrected marks and the corresponding detection scores on a set ofcollected payloads.

In one implementation, a simple majority decision counts the number oftimes a bit was detected as ‘0’ and the number of times it was detectedas ‘1’. The value of the bit is determined to be the value with the mostcount. A more sophisticated majority decision may weigh the value ofeach extracted bit with a detection score.

One implementation includes one or more programmable processors andcorresponding computer system components to store and execute computerinstructions. Combinations of hardware, software, and firmware can alsobe used. For example, in the provider system, distribution, andplayback, the encryption of data, building and distribution of contentfiles, conversion, and generating checksums can be performed by one ormore computer systems executing appropriate computer instructions on oneor more processors utilizing appropriate components and systems (such asmemory, computational units, buses, etc.).

The above description of the disclosed implementations is provided toenable any person skilled in the art to make or use the disclosure.Various modifications to these implementations will be readily apparentto those skilled in the art, and the generic principles described hereincan be applied to other embodiments without departing from the spirit orscope of the disclosure. Accordingly, the techniques are not limited tothe specific examples described above. Thus, it is to be understood thatthe description and drawings presented herein represent a presentlypreferred embodiment of the disclosure and are therefore representativeof the subject matter that is broadly contemplated by the presentdisclosure. It is further understood that the scope of the presentdisclosure fully encompasses other embodiments that may become obviousto those skilled in the art and that the scope of the present disclosureis accordingly limited by nothing other than the appended claims.

The invention claimed is:
 1. A system for embedding an anti-collusionwatermark payload in content, the system comprising: a memory configuredto store a random seed; a processor including: a permutation generatorconfigured to receive and process a watermark payload and the randomseed, and generate a shuffled payload based on the random seed; and awatermark embedder configured to receive and embed the shuffled payloadinto the content, wherein the watermark payload is shuffled to enableidentification of a common model number of machines used in collusion.2. The system of claim 1, wherein the watermark embedder comprises anevaluator configured to evaluate predetermined properties of the contentto set the random seed.
 3. The system of claim 1, wherein the watermarkembedder comprises an interface unit configured to increment the randomseed after the shuffled payload is embedded into the content.
 4. Thesystem of claim 1, wherein the permutation generator is a pseudo-randompermutation generator.
 5. The system of claim 1, wherein the system is aplayback device configured to playback the content.
 6. The system ofclaim 1, wherein the watermark payload comprises a model number and anindividual device identifier.
 7. A method to embed an anti-collusionwatermark payload in content, the method comprising: generating a randomseed using a counter; shuffling the watermark payload to generate ashuffled payload based on the random seed, wherein the watermark payloadis shuffled to enable identification of a common model number ofmachines used in collusion; and embedding the shuffled payload into thecontent.
 8. The method of claim 7, wherein shuffling the watermarkpayload comprises randomly rearranging a bit order of the watermarkpayload using the random seed.
 9. The method of claim 7, furthercomprising requesting the counter to increment the random seed after theshuffled payload is embedded into the content.
 10. The method of claim7, further comprising evaluating predetermined properties of the contentto set the random seed.
 11. A method to detect a group of traitorscolluding to obtain content, the method comprising: extracting ashuffled watermark payload from the content, wherein the watermarkpayload is shuffled to enable identification of a common model number ofmachines used in the collusion by the group of traitors; unshuffling thewatermark payload using a reverse permutation generator and an expectedoutput of a counter to generate an unshuffled payload; and applying amajority decision on a set of unshuffled watermark payloads to detectthe group of traitors.
 12. The method of claim 11, wherein the majoritydecision uses detection scores corresponding to the set of unshuffledwatermark payloads.
 13. The method of claim 11, wherein the unshuffledwatermark payload comprises a model number and an individual deviceidentifier.
 14. The method of claim 11, wherein the unshuffled watermarkpayload comprises an error correction code.
 15. An apparatus comprising:a processor; and memory connected to the processor, the memory storing acomputer program to embed a watermark payload in content, the computerprogram comprising instructions executable by the processor that causethe apparatus to: generate a random seed using a counter; shuffle thewatermark payload to generate a shuffled payload based on the randomseed, wherein the watermark payload is shuffled to enable identificationof a common model number of machines used in collusion; and embed theshuffled payload into the content.
 16. The apparatus of claim 15,wherein the apparatus is a playback device configured to playback thecontent.
 17. An apparatus comprising: a processor; and memory connectedto the processor, the memory storing a computer program to detect agroup of traitors colluding to obtain content, the computer programcomprising instructions executable by the processor that cause theapparatus to: extract a shuffled watermark payload from the content,wherein the watermark payload is shuffled to enable identification of acommon model number of machines used in collusion; unshuffle thewatermark payload using a reverse permutation generator and an expectedoutput of a counter to generate an unshuffled payload; and apply amajority decision on a set of unshuffled watermark payloads to detectthe group of traitors.
 18. The apparatus of claim 17, wherein themajority decision uses detection scores corresponding to the set ofunshuffled watermark payloads.